1/21—Introduction

Reading: §1.2

1/23—Stable matching: Gale–Shapley algorithm

Reading: §1.1


1/26—Greedy algorithms I: Interval scheduling

Reading: §4.1

1/28—Greedy algorithms II: Minimizing lateness

Reading: §4.2

1/29—Homework 1 due

1/30—Greedy algorithms III: Minimum Spanning Tree

Reading: §4.5–4.6,

2/02—Greedy algorithms IV: Union-find data structure

Reading: §4.6


2/04—Dynamic programming I: Weighted interval scheduling

Reading: §6.1

2/05—Homework 2 due

2/06—Dynamic programming II: Segmented least squares

Reading: §6.3

2/09—Dynamic programming III: Sequence alignment

Reading: §6.6

2/11—Dynamic programming IV: Knapsack

Reading: §6.4

2/12—Homework 3 due

2/13—Dynamic programming V: Bellman–Ford algorithm

Reading: §6.8

(Feburary break)


2/18—Divide & Conquer I: Closest pair of points

Reading: §5.4

2/20—Divide & Conquer II: Integer multiplication

Reading: §5.5

2/22—Optional review session

2/23—Divide & Conquer III: Randomized median finding

Reading: §13.5

2/24—Prelim I


2/25—Network flow I: Introduction

Reading: §7.1

2/27—Network flow II

Reading: §7.1

3/02—Network flow III

Reading: §7.5–7.6

3/04—Network flow IV

Reading: §7.7

3/05—Homework 4 due

3/06—Network flow V

Reading: §7.2

3/09—Network flow VI

Reading: §7.10

3/11—NP completeness I: Polynomial-time reductions

Reading: §8.1–8.2

3/12—Homework 5 due

3/13—NP completeness II: Reduction from 3-Sat to Independent Set

Reading: §8.3–8.4

3/16—NP completeness II: Max-Cut

(supplementary notes)

3/18—NP completeness II: Traveling Salesperson

Reading: §8.5

3/20—NP completeness II: Knapsack

Reading: §8.8, (supplementary notes)

3/23—Turing Machines I: Definition and Examples

(supplementary notes, first 10 pages)

3/25—Turing Machines II: Universal Turing machine

(supplementary notes, first 10 pages)

3/27—Turing Machines III: Church–Turing thesis

(supplementary notes, first 10 pages)

4/06—Turing Machines IV: Halting problem is undecidable

(supplementary notes, first 10 pages)

4/08—Review session for prelim 2

4/10—Turing Machines V: Satisfiability is NP-complete

4/13—Approximation algorithms I: Introduction, Vertex Cover

Reading: §10.1

4/15—Approximation algorithms II: Greedy approximation for Set Cover, pricing method

Reading: §11.3

4/17—Approximation algorithms III: Knapsack approximation scheme

Reading: §11.8

4/20—Approximation algorithms IV: Linear program for Weighted Vertex Cover

Reading: §11.6

4/22—Approximation algorithms IV: Linear program for Max Coverage

(supplementary notes)

4/24—Approximation algorithms V: Randomization and Local Search for Max Cut

Reading: §12.4. See also supplementary notes.

4/29—Nash Equilibria and Local Search

Reading: §12.7.

5/1—Best Expert algorithm

5/4—The Secretary Problem

4/29—Input-Output queuing via Stable Matching

Reading: §Epilogue